package com.jingyanzi.member.service;

import com.jingyanzi.member.domain.CustomerFamilyDO;
import com.jingyanzi.member.domain.result.ResultDO;
import com.jingyanzi.member.query.CustomerFamilyQueryDO;


/**
 * 客户联系人信息管理 <b>Description:</b><br>
 * 
 * @author Reading.Reagan</a>
 * @version 1.0
 * @Note <b>ProjectName:</b> member-api <br>
 *       <b>PackageName:</b> com.jingyanzi.member.service <br>
 *       <b>ClassName:</b> IFamilyMemberService <br>
 *       <b>Date:</b> 2018年7月16日 下午3:58:55
 */
public interface ICustomerFamilyService {

	/**
	 * 添加客户联系人 <b>Description:</b><br>
	 * 
	 * @param domain
	 *            客户联系人DO对象
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午3:59:16 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO add(CustomerFamilyDO domain);

	/**
	 * 客户联系人电话号码查重处理 <b>Description:根据联系人手机号 、联系人添加时间进行查询</b><br>
	 * 
	 * @param query
	 * @return ResultDO 重复的数量
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午3:59:16 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO checkMobileNumber(CustomerFamilyDO domain);

	/**
	 * 批量删除客户联系人 <b>Description:逻辑删除</b><br>
	 * 
	 * @param ids
	 *            联系人id
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:02:40 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO remove(Integer[] ids);
	
	
	public ResultDO remove(Integer id);

	/**
	 * 删除客户联系人 <b>Description:通过客户id，删除与之相关的所有联系人信息，delete删除</b><br>
	 * 
	 * @param customerId
	 *            客户id
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:02:40 <br>
	 *       <b>Version:</b> 1.0
	 */
	//public ResultDO removeForCustomer(CustomerFamilyDO customerId);

	/**
	 * 更换客户首要联系人 <b>Description:</b><br>
	 * 
	 * @param domain
	 *            客户首要联系人DO对象
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:35:22 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO modifi(CustomerFamilyDO domain);

	/**
	 * 更新客户联系人信息 <b>Description:</b><br>
	 * 
	 * @param domain
	 *            客户联系人DO对象
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:37:08 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO update(CustomerFamilyDO domain);

	/**
	 * 通过客户联系人id查询联系人信息 <b>Description:</b><br>
	 * 
	 * @param id
	 *            客户联系人id
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:39:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO get(Integer id);

	/**
	 * 通过客户id查询首要联系人信息 <b>Description:</b><br>
	 * 
	 * @param customId
	 *            客户id
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:39:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	// public ResultDO getFirstMember(Integer customId);

	/**
	 * 多条件查询客户联系人列表 <b>Description:</b><br>
	 * 
	 * @param query
	 * @return ResultDO List<FamilyMemberDO>
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年7月16日 下午4:39:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO query(CustomerFamilyQueryDO query);

	/**
	 * 根据客户id查询首要联系人信息 <b>Description:</b><br>
	 * 
	 * @param id
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年11月2日 上午9:58:07 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO getFirstByCustomerID(Integer id);
}
